package com.alks.function.service.biocontrol.deptwork;

import com.alks.entity.data.entity.*;
import com.alks.entity.data.page.PageParam;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.biocontrol.deptwork.SchHeadMovRequest;
import com.alks.function.data.request.biocontrol.deptwork.ScheduleLotRequest;
import com.alks.function.data.vo.biocontrol.deptwork.ScheduleHeadExcelVo;
import org.springframework.web.bind.annotation.RequestBody;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public interface IPsScehduleService {
    ResponseInfo getLineQuery();

    ResponseInfo getHolidayQuery(PageParam request);

    ResponseInfo getIEQuery(PageParam request,String style);

    ResponseInfo getCustomQuery(@RequestBody PageParam request);

    ResponseInfo getCurveQuery();

    ResponseInfo getLtCommonQuery();

    ResponseInfo getDayPercentQuery(PageParam request, String line, LocalDateTime time);

    ResponseInfo lineAdd(PsLine request);

    ResponseInfo holidayAdd(PsHoliday request);

    ResponseInfo iEAdd(PsStyleIe request);

    ResponseInfo customAdd(PsLineCustom request);

    ResponseInfo curveAdd(PsStyleCurve request);

    ResponseInfo dayPercentAdd(PsDayPercent request);

    ResponseInfo lineUpdate(PsLine request, String workshopOld);

    ResponseInfo holidayUpdate(PsHoliday request, LocalDateTime holidayDateOld);

    ResponseInfo iEUpdate(PsStyleIe request, String styleOld);

    ResponseInfo customUpdate(PsLineCustom request);

    ResponseInfo curveUpdate(PsStyleCurve request);

    ResponseInfo ltCommonUpdate(PsLtCommon request);

    ResponseInfo dayPercentUpdate(PsDayPercent request);

    ResponseInfo lineDelete(String workshopOld);

    ResponseInfo holidayDelete(LocalDateTime holidayDateOld);

    ResponseInfo iEDelete(String styleOld);

    ResponseInfo customDelete(Integer id);

    ResponseInfo curveDelete(Integer id);

    ResponseInfo dayPercentDelete(Integer id);

    ResponseInfo monthHolidayAdd();

    ResponseInfo monthPercentAdd(String date);

    ResponseInfo scheduleLotUp();

    ResponseInfo getScheduleLotQuery(ScheduleLotRequest request);

    ResponseInfo scheduleLotTF(String lotNo, String schFlag);

    ResponseInfo indexMove(SchHeadMovRequest request);

    ResponseInfo lineMove(SchHeadMovRequest request);

    ResponseInfo updateScheduleHead();

    ResponseInfo getScheduleHeadQuery(String line, String lotNo, String style);

    ResponseInfo indexUpDown(SchHeadMovRequest request);

    ResponseInfo scheduleHeadUp(String lotNo, String stdQty);

    ResponseInfo cptScheduleHead(LocalDate time);

    ResponseInfo scheduleHeadAdd(List<String> lotNo, String line);

    ResponseInfo scheduleHeadDelete(List<String> lotNo);

    List<ScheduleHeadExcelVo> scheduleHeadExpord();

    ResponseInfo getScheduleQuery(ScheduleLotRequest request);

    ResponseInfo getStyleBack();

    void percentMonthAdd(String month);
}
